/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/10/13 17:03
 * @Copyright
 */


package Reflect;

import java.util.Date;

public class ReflectTest1 {
    public static void main(String[] args) throws Exception{
        //第一种
        Class c1=Class.forName("demo.Reflect.Employee");//c1引用，保存内存地址指向堆中的对象，该对象代表的是Employee整个类

        //第二种 java中每个对象都有getClass方法
        Employee e=new Employee();
        Class c2= e.getClass();

        //第三种 Java中每个类型都有Class属性
        Class c3=Employee.class;

        //因为Employee这个类在JVM中只有一个，所以c1、c2、c3的内存地址是相同的
        //指向堆中的同一个对象
        System.out.println(c1==c2); //true
        System.out.println(c2==c3); //true

        Class c4 = Date.class; //c4代表Date这个类
        Class<?> c5 = Class.forName("java.util.Date");//必须写类全名，类全名带包
        Date d=new Date();
        Class c6= d.getClass();

        System.out.println(c4==c5); //true
        System.out.println(c5==c6); //true
    }
}
